Method for updating coefficients in decision feedback equalizer

ABSTRACT

A method for updating coefficients in a decision feedback equalizer (DFE). The DFE comprises an ISI canceller for canceling ISI from a plurality of first signals received from a channel. A first symbol comprising a set of the first signals is decoded to generate a decoded symbol. Then, a vector of error values computed as the difference between the decoded symbol, and the first symbol is obtained. According to the decoded symbol and the vector of the error values, a temp matrix is generated. Next, the values of the elements in every diagonal line of the temp matrix are averaged. Finally, the coefficients are updated by the Toeplitz Matrix.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a decision feedback equalizer and particularly to a method for generating a Toeplitz matrix in a decision feedback equalizer to reduce inter-chip interference (ICI) and inter-symbol interference (ISI).

2. Description of the Related Art

Wireless communication channels often suffer from severe inter-chip interference (ICI), inter-symbol interference (ISI), and multi-path fading effect. Channel equalization is essential to combat channel distortion caused by the above, so that symbols can be correctly determined at the receiving end. Channel equalization can be performed either on a chip basis or on a sample basis. In chip based equalization, the equalizer coefficients are updated on every received chip. Decision feedback equalizer (DFE) using the least mean-squared (LMS) algorithm is a well-known equalization technique for magnetic storage and digital communication. The basic block diagram of traditional DFE is depicted in FIG. 1, where DFE is composed of two main finite impulse response (FIR) filters, the feedforward filter (FFF) 102 and the feedback filter (FBF) 104. The outputs from both filters are added and fed into a slicer 106. The signal output from the slicer 106 is the final equalized data. The basic function of FFF 102 and FBF 104 is to cancel the pre-cursor and post-cursor inter-chip interference (ICI) respectively, while the WUC 108 and WUD 110 in the figure stand for the weight-update blocks for the FFF 102 and the FBF 104.

DFE in the chip-base helps alleviate ICI. ISI, however, cannot be completely cancelled with this type of DFE. Thus, a DFE that reduces ISI and ICI simultaneously is desirable.

SUMMARY OF THE INVENTION

The object of the present invention is to provide a method for generating a Toeplitz matrix in a decision feedback equalizer (DFE). A DFE of this type is then inter-chip interference (ICI) simultaneously.

The present invention provides a method for updating coefficients in a decision feedback equalizer (DFE). The DFE comprises an ISI canceller for canceling a ISI from a plurality of first signals received from a channel. A first symbol comprising a set of the first signals is decoded to generate a decoded symbol. Then, a vector of error values computed as the difference between the decoded symbol, and the first symbol is obtained. According to the decoded symbol and the vector of the error values, a temp matrix is generated. Next, the values of the elements in every diagonal line of the temp matrix are averaged. Finally, the coefficients are updated by the Toeplitz Matrix.

The present invention also provides a decision feedback equalizer (DFE). The DFE comprises an ICI canceller and an ISI canceller. The ICI canceller cancels ICI from a signal received from a channel and outputs a first signal without ICI. The ISI canceller comprises a symbol decoder and a symbol-base feedback filter with a plurality of coefficients. A first symbol comprising a set of the first signals is decoded by the symbol decoder. The symbol-base feedback filter transforms the decoded symbol by a Toeplitz Matrix to cancel ISI from the present decoded symbol, and generates an output signal. The Toeplitz Matrix is generated by the above method.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become more fully understood from the detailed description given hereinbelow and the thus not intended to be limitative of the present invention.

FIG. 1 is a block diagram illustrating a configuration of a traditional DFE.

FIG. 2 is a block diagram illustrating a configuration of a DFE according to the first embodiment of the present invention.

FIG. 3 is a flow chart illustrating the method for updating coefficients in the DFE according to the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 2 is a block diagram illustrating a configuration of a DFE according to the first embodiment of the present invention. The DFE comprises an inter-chip interference (ICI) canceller 200 and an inter-symbol interference (ISI) canceller 250. A signal X_(k)(n) received from a channel is input to the ICI canceller 200.

The ICI canceller 200 is composed of two main chip-base finite impulse response (FIR) filters, the feedforward filter (FFF) 210 and the feedback filter (FBF) 220. The basic function of FFF 210 and FBF 220 is to cancel the pre-cursor and post-cursor inter-chip interference (ICI) respectively. The FFF 210 and FBF 220 adapt the tap weights to compensate for ICI and other sources of signal degradation and distortion.

The outputs from both filters Y_(cf) and Y_(cd) are added by an adder 240 to become input data Y_(c). The input data Y_(c) is fed into a hard decision block 230. Then, the hard decision block 230 produces equalized data HD(Y_(c)). After a one-tap delay block 246, the equalized data HD(Y_(c)) is fed into FEF 220.

On the other hand, an error E_(c) defines a vector of error values computed as the difference between an output C_(k) of a multiplexer 244 and the input data Y_(c). In the embodiment, the DFE can operate in a barker mode or a CCK mode. The operating mode can be selected by control signals S_(c1) and S_(c2) input to the multiplexer 244.

Then, the error E_(c) is fed back to the FFF 210 and FBF 220 to adapt the tap weights. The WUC 212 and WUD 222 in the figure stand for the weight-update blocks for the FFF 210 and the FBF 220.

In this embodiment of the invention, the WUC 212 and WUD 222 use Least-Mean-Square (LMS) to adapt the tap weights as is shown in the following example.

For the Barker mode, the adaptive algorithm is: W _(k)(n+1)=W _(k)(n)+

*conj(E _(c)(n))*X(n−k), k=0, 1, . . . , N;  (1)

-   -   where W_(k)(n+1) is the vector set formed by the tap weights W₁,         W₂, . . . , W_(N) in the FFF 210 after a period of time, i.e.         the vector set formed by the adjusted tap weights;     -   W(n) is the vector set formed by the tap weights W₁, W₂, . . . ,         W_(N) in the FFF 210 at a chip time n; and     -   is the learning constant.         B _(k)(n+1)=B _(k)(n)+         *conj(E _(c)(n))*Bk[Y _(c)(n−k)], k=0, 1, . . . , M;  (2)     -   where B_(k)(n+1) is the vector set formed by the tap weights B₁,         W₂, . . . , B_(M) in the FBF 220 after a period of time, i.e.         the vector set formed by the adjusted tap weights;     -   B_(k)(n) is the vector set formed by the tap weights W₁, W₂, . .         . , W_(N) in the FBF 220 at a chip time n; and     -   is the learning constant.

The input data Y_(c)(n) fed into a hard decision block 230 is: $\begin{matrix} \begin{matrix} {{Y_{c}(n)} = {{\sum\limits_{k = 0}^{N}{X_{k}\left( {n - k} \right){conj}\left( W_{k} \right)}} -}} \\ {\sum\limits_{k = 0}^{M}{{{HD}\left\lbrack {Y_{c}\left( {n - k - 1} \right)} \right\rbrack}_{k}{{conj}\left( B_{k} \right)}}} \end{matrix} & (3) \end{matrix}$

The error E_(c)(n) is: E _(c)(n)=C _(k)(n)−Y _(c)(n)  (4)

For the CCK mode, the adaptive algorithm is: W _(k)(n+1)=W _(k)(n)+

*conj(E _(c)(n−16))*X(n−k−16), k=0, 1, . . . , N;  (5)

-   -   where W_(k)(n+1) is the vector set formed by the tap weights W₁,         W₂, . . . , W_(N) in the FFF 210 after a period of time, i.e.         the vector set formed by the adjusted tap weights;     -   W(n) is the vector set formed by the tap weights W₁, W₂, . . . ,         W_(N) in the FFF 210; and     -   is the learning constant.         B _(k)(n+1)=B _(k)(n)+         *conj(E _(c)(n−16))*Bk[Y _(c)(n−k−17)], k=0, 1, . . . , M;  (6)     -   where B_(k)(n+1) is the vector set formed by the tap weights B₁,         W₂, . . . , B_(M) in the FBF 220 after a period of time, i.e.         the vector set formed by the adjusted tap weights;     -   B_(k)(n) is the vector set formed by the tap weights W₁, W₂, . .         . , W_(N) in the FBF 220; and     -   is the learning constant.

The input data Y_(c)(n) fed into a hard decision block 230 is: $\begin{matrix} \begin{matrix} {{Y_{c}(n)} = {{\sum\limits_{k = 0}^{N}{{X_{k}\left( {n - k} \right)}{{conj}\left( W_{k\quad} \right)}}} -}} \\ {\sum\limits_{k = 0}^{M}{{{HD}\left\lbrack {Y_{c}\left( {n - k - 1} \right)} \right\rbrack}_{k}{{conj}\left( B_{k} \right)}}} \end{matrix} & (7) \end{matrix}$

The error E_(c)(n) is: E _(c)(n−16)=C _(k)(n−16)−Y _(c)(n−16)  (8)

After a symbol time delay block, which is 8-tap delay block 260 in the embodiment, a symbol Y_(cs) which comprises eight input data Y_(c) is fed in to an adder 270. The ISI canceller 250 is composed from a symbol-based feedback filter (FBF) 270 and a CCK or barker decoder 280. The symbol-based FBF 270 adapts the tap weights to compensate for ISI generated by the last symbol. The outputs from the symbol-based FBF 270 Y_(bs) and the symbol Y_(cs) are added by an adder 290 to become an input symbol Y_(s).

The input symbol Y_(s) is fed into the CCK or barker decoder 280. Then, the CCK or barker decoder 280 produces a decoded symbol C(Y_(s)). An error E_(s) defines a vector of error values computed as the difference between the decoded symbol C(Y_(s)) and the input symbol Y_(s) after a one-tap delay block 294.

Then, the error E_(c) and the input symbol Y_(s) after a one-tap delay block 292 is input to a Toeplitz matrix block 272. The TMB 272 in the figure stands for the coefficient-update block for the symbol-based FBF 270.

In this embodiment of the invention, the TMB 272 uses Least-Mean-Square (LMS) to adapt the tap weights, for example.

The adaptive algorithm is: H(m+1)=H(m)+μT{conj(E(m))·C(m+1)};  (9)

-   -   where H(m) is coefficients at a symbol time m;     -   H(m+1) is coefficients at a symbol time (m+1);     -   is a predetermined gain;     -   T is a Toeplitz Matrix;     -   E(m) is the vector of error values; and     -   C(m+1) is the decoded symbol at the symbol time (m+1).

The symbol Y_(cs)(m) which comprises eight input data Y_(c)(n−7), Y_(c)(n−6), Y_(c)(n−5), Y_(c)(n−4), Y_(c)(n−3), Y_(c)(n−3), Y_(c)(n−1), Y_(c)(n) is take as an example, where m is a symbol time and a natural number, and n=8×m. The algorithm to compensate for ISI generated by the last symbol C(Y_(s)(m−1)) is: $\begin{matrix} \begin{matrix} {{Y_{s}(m)} = {{Y_{cs}(m)} - {{C\left( {Y_{s}\left( {m - 1} \right)} \right)}\quad\bullet\quad{H(m)}}}} \\ {= {{Y_{cs}(m)} - \left\lbrack {{C\left( {n - 15} \right)}\quad{C\left( {n - 14} \right)}\quad{C\left( {n - 13} \right)}\quad{C\left( {n - 12} \right)}} \right.}} \\ {\left. {{C\left( {n - 11} \right)}\quad{C\left( {n - 10} \right)}\quad{C\left( {n - 9} \right)}\quad{C\left( {n - 8} \right)}} \right\rbrack\quad\bullet\quad{H(m)}} \end{matrix} & (10) \end{matrix}$

The following illustrates how the Toeplitz Matrix in the TMB 272 is generated.

First, the symbol Y_(cs)(m) which comprises input data Y_(c)(n−7), Y_(c)(n−6), Y_(c)(n−5), Y_(c)(n−4), Y_(c)(n−3), Y_(c)(n−3), Y_(c)(n−1), Y_(c)(n) is decoded to generate a decoded symbol C(Y_(cs)(m)).

An error E_(s)(m) defines a vector of error values computed as the difference between the decoded symbol C(Y_(cs)(m)) and the input symbol Y_(cs)(m) after a one-tap delay block 294. Then, according to the decoded symbol C(Y_(cs)(m)) and the vector of the error values E_(s)(m), a temp Matrix ${T(m)}\begin{bmatrix} h_{11} & h_{12} & \cdots & \cdots & h_{18} \\ h_{21} & h_{22} & \cdots & \cdots & h_{28} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{71} & h_{72} & \cdots & \cdots & h_{78} \\ h_{81} & h_{82} & \cdots & \cdots & h_{88} \end{bmatrix}$ is generated. The temp Matrix T(m) is: ${{T(m)} = \begin{bmatrix} {{E^{*}\left( {n - 7} \right)} \cdot {C\left( {n - 7} \right)}} & {{E^{*}\left( {n - 7} \right)} \cdot {C\left( {n - 6} \right)}} & \cdots & \cdots & {{E\left( {n - 7} \right)} \cdot {C(n)}} \\ {{E^{*}\left( {n - 6} \right)} \cdot {C\left( {n - 7} \right)}} & {{E^{*}\left( {n - 6} \right)} \cdot {C\left( {n - 6} \right)}} & \cdots & \cdots & {{E^{*}\left( {n - 6} \right)} \cdot {C(n)}} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ {{E^{*}\left( {n - 1} \right)} \cdot {C\left( {n - 7} \right)}} & {{E^{*}\left( {n - 1} \right)} \cdot {C\left( {n - 6} \right)}} & \cdots & \cdots & {{E^{*}\left( {n - 1} \right)} \cdot {C(n)}} \\ {{E^{*}(n)} \cdot {C\left( {n - 7} \right)}} & {{E^{*}(n)} \cdot {C\left( {n - 6} \right)}} & \cdots & \cdots & {{E^{*}(n)} \cdot {C(n)}} \end{bmatrix}};$

-   -   where E(n) is a vector of error values at the chip time n and         C(n) is the chip of the decoded symbol at the chip time n.

If the channel is steady, such as the DFE design for wireless communication over mobile radio channel, the values of the elements in the diagonal lines of the temp Matrix are almost the same i.e. h₁₁=h₂₂= . . . =h₈₈, h₂₁=h₃₂= . . . =h₈₇, . . . , h₇₁=h₈₂, h₁₂=h₂₃= . . . =h₇₈, h₁₃=h₂₄= . . . =h₇₇, . . . , h₁₇=h₂₈.

Thus, for reducing noise, the values of the elements in every diagonal line of the temp matrix are averaged to generate a Toeplitz Matrix ${{H(m)}\begin{bmatrix} h_{8} & h_{9} & \cdots & \cdots & h_{15} \\ h_{7} & h_{8} & \cdots & \cdots & h_{14} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & h_{9} \\ h_{1} & h_{2} & \cdots & \cdots & h_{8} \end{bmatrix}}.$ The Toeplitz Matrix ${H(m)} = {\begin{bmatrix} \frac{\left( {\sum\limits_{i = 0}^{7}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{8} & \frac{\left( {\sum\limits_{i = 0}^{6}{{E^{*}\left( {n - \left( {i + 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{7} & \cdots & \cdots & {{E^{*}\left( {n - 7} \right)} \cdot {C(n)}} \\ \frac{\left( {\sum\limits_{i = 0}^{6}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 1} \right)} \right)}}} \right.}{7} & \frac{\left( {\sum\limits_{i = 0}^{7}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{8} & \cdots & \cdots & \frac{\left( {\sum\limits_{i = 0}^{1}{{E^{*}\left( {n - \left( {i + 6} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{2} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \frac{\left( {\sum\limits_{i = 0}^{1}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 6} \right)} \right)}}} \right.}{2} & \frac{\left( {\sum\limits_{i = 0}^{2}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 5} \right)} \right)}}} \right.}{3} & \cdots & \cdots & \frac{\left( {\sum\limits_{i = 0}^{6}{{E^{*}\left( {n - \left( {i + 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{7} \\ {{E^{*}(n)} \cdot {C\left( {n - 7} \right)}} & \frac{\left( {\sum\limits_{i = 0}^{1}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 6} \right)} \right)}}} \right.}{2} & \cdots & \cdots & \frac{\left( {\sum\limits_{i = 0}^{7}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{8} \end{bmatrix}.}$

In addition, in the Toeplitz Matrix $\begin{bmatrix} h_{8} & h_{9} & \cdots & \cdots & h_{15} \\ h_{7} & h_{8} & \cdots & \cdots & h_{14} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & h_{9} \\ h_{1} & h_{2} & \cdots & \cdots & h_{8} \end{bmatrix},$ for any 15≧i≧8, the h_(i) . . . h₁₅ may be equal to 0, such as, if h₉˜h₁₅ are small and can be ignored, the Toeplitz Matrix becomes $\begin{bmatrix} h_{8} & 0 & \cdots & \cdots & 0 \\ h_{7} & h_{8} & \cdots & \cdots & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & 0 \\ h_{1} & h_{2} & \cdots & \cdots & h_{8} \end{bmatrix}.$ Thus, the Toeplitz Matrix ${H(m)} = {\begin{bmatrix} \frac{\left( {\sum\limits_{i = 0}^{7}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{8} & 0 & \cdots & \cdots & 0 \\ \frac{\left( {\sum\limits_{i = 0}^{6}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 1} \right)} \right)}}} \right.}{7} & \frac{\left( {\sum\limits_{i = 0}^{7}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{8} & \cdots & \cdots & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \frac{\left( {\sum\limits_{i = 0}^{1}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 6} \right)} \right)}}} \right.}{2} & \frac{\left( {\sum\limits_{i = 0}^{2}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 5} \right)} \right)}}} \right.}{3} & \cdots & \cdots & 0 \\ {{E^{*}(n)} \cdot {C\left( {n - 7} \right)}} & \frac{\left( {\sum\limits_{i = 0}^{1}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + 6} \right)} \right)}}} \right.}{2} & \cdots & \cdots & \frac{\left( {\sum\limits_{i = 0}^{7}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)}{8} \end{bmatrix}.}$

In summary, the flow chart illustrating the method for updating coefficients in the DFE according to the present invention is shown in FIG. 3. First, a first symbol comprising a set of the first signals is decoded to generate a decoded symbol (S302). Then, a vector of error values computed as the difference between the decoded symbol, and the first symbol is obtained (S304). According to the decoded symbol and the vector of the error values, a temp matrix is generated (S306). Next, the values of the elements in every diagonal line of the temp matrix are averaged (S308). Finally, the coefficients are updated by the Toeplitz Matrix (S310).

The foregoing description of the preferred embodiments of this invention has been presented for purposes of illustration and description. Obvious modifications or variations are possible in light of the above teaching. The embodiments were chosen and described to provide the best illustration of the principles of this invention and its practical application to thereby enable those skilled in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the present invention as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly, legally, and equitably entitled. 

1. A method for updating coefficients in a decision feedback equalizer with an ISI canceller for canceling ISI from a plurality of first signals received from a channel, the method comprising: decoding a first symbol comprising a set of the first signals to generate a decoded symbol, wherein the first symbol has (k+1) chips, and k is natural number; obtaining a vector of error values computed as the difference between the decoded symbol, and the first symbol; generating a temp matrix according to the decoded symbol and the vector of the error values; averaging the values of the elements in every diagonal line of the temp matrix to generate a Toeplitz Matrix; and updating the coefficients by the Toeplitz Matrix.
 2. The method as claimed in claim 1 further comprises: updating coefficients according to a least mean square algorithm: H(m+1)=H(m)+[μT{conj(E(m))·C(m+1)}; H(m) is coefficients at a symbol time m; H(m+1) is coefficients at a symbol time (m+1);

is a predetermined gain; T is the Toeplitz Matrix; E(m) is the vector of error values; and C(m+1) is the decoded symbol at the symbol time (m+1).
 3. The method as claimed in claim 1, wherein, in the Toeplitz Matrix $\begin{bmatrix} h_{({k + 1})} & h_{({k + 2})} & \cdots & \cdots & h_{({{2k} + 1})} \\ h_{k} & h_{({k + 1})} & \cdots & \cdots & h_{2k} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & h_{({k + 2})} \\ h_{1} & h_{2} & \cdots & \cdots & h_{({k + 1})} \end{bmatrix},$ for any (2k+1)≧i≧(k+1), the h_((i)) . . . h_((2k+1)) are equal to
 0. 4. A method for updating coefficients in a decision feedback equalizer with an ISI canceller for canceling ISI from a plurality of first signals received from a channel, the method comprising: decoding a first symbol comprising a set of the first signals to generate a decoded symbol, wherein the first symbol has (k+1) chips, and k is natural number; obtaining a vector of error values computed as the difference between the decoded symbol, and the first symbol; generating a temp Matrix T(m) according to the decoded symbol and the vector of the error values, wherein ${{T(m)} = \begin{bmatrix} {{E^{*}\left( {n - k} \right)} \cdot {C\left( {n - k} \right)}} & {{E^{*}\left( {n - k} \right)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E\left( {n - k} \right)} \cdot {C(n)}} \\ {{E^{*}\left( {n - \left( {k - 1} \right)} \right)} \cdot {C\left( {n - k} \right)}} & {{E^{*}\left( {n - \left( {k - 1} \right)} \right)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E^{*}\left( {n - \left( {k - 1} \right)} \right)} \cdot {C(n)}} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \left. {{E^{*}\left( {n - 1} \right)} \cdot {C\left( {n - k} \right)}} \right) & {{E^{*}\left( {n - 1} \right)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E^{*}\left( {n - 1} \right)} \cdot {C(n)}} \\ {{E^{*}(n)} \cdot {C\left( {n - k} \right)}} & {{E^{*}(n)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E^{*}(n)} \cdot {C(n)}} \end{bmatrix}},$  where m is the symbol time of the first symbol, the chip times of the first symbol are from (n−k) to n, n and m are natural numbers and n=(k+1)m; E(n) is a vector of error values at the chip time n; and C(n) is the chip of the decoded symbol at the chip time n; averaging the values of the elements in every diagonal line of the temp matrix to generate a Toeplitz Matrix $\begin{bmatrix} h_{({k + 1})} & h_{({k + 2})} & \cdots & \cdots & h_{({{2k} + 1})} \\ h_{k} & h_{({k + 1})} & \cdots & \cdots & h_{2k} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & h_{({k + 2})} \\ h_{1} & h_{2} & \cdots & \cdots & h_{({k + 1})} \end{bmatrix},$ wherein ${H(m)} = \begin{bmatrix} {\left( {\overset{k}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)/\left( {k + 1} \right)} & {\left( {\overset{k - 1}{\sum\limits_{i = 0}}{{E^{*}\left( {n - \left( {i + 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)/k} & \cdots & \cdots & {{E^{*}\left( {n - k} \right)} \cdot {C(n)}} \\ \left( {\overset{k - 1}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {{C\left( {n - \left( {i + 1} \right)} \right)}/k}}} \right. & {\left( {\overset{k}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)/\left( {k + 1} \right)} & \cdots & \cdots & {\left( {\overset{k - {({k - 1})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - \left( {i + k - 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)/2} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ {\left( {\overset{k - {({k - 1})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + k - 1} \right)} \right)}}} \right)/2} & {\left( {\overset{k - {({k - 2})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + k - 2} \right)} \right)}}} \right)/3} & \cdots & \cdots & {\left( {\overset{k - 1}{\sum\limits_{i = 0}}{{E^{*}\left( {n - \left( {i + 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)/k} \\ {{E^{*}(n)} \cdot {C\left( {n - k} \right)}} & {\left( {\overset{k - {({k - 1})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + k - 1} \right)} \right)}}} \right)/2} & \cdots & \cdots & {\left( {\overset{k}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)/\left( {k + 1} \right)} \end{bmatrix}$  where H(m) is the Toeplitz Matrix at the symbol time m.
 5. The method as claimed in claim 4 further comprises: updating coefficients according to a least mean square algorithm: H(m+1)=H(m)+μT{conj(E(m))·C(m+1)}; H(m) is coefficients at a symbol time m; H(m+1) is coefficients at a symbol time (m+1);

is a predetermined gain; T is the Toeplitz Matrix; E(m) is the vector of error values; and C(m+1) is the decoded symbol at the symbol time (m+1).
 6. The method as claimed in claim 4, wherein, in the Toeplitz Matrix $\begin{bmatrix} h_{({k + 1})} & h_{({k + 2})} & \cdots & \cdots & h_{({{2k} + 1})} \\ h_{k} & h_{({k + 1})} & \cdots & \cdots & h_{2k} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & h_{({k + 2})} \\ h_{1} & h_{2} & \cdots & \cdots & h_{({k + 1})} \end{bmatrix},$ for any (2K+1)≧i≧(k+1), the h_((i)) . . . h_((2k+1)) are equal to
 0. 7. A decision feedback equalizer, comprising: an ICI canceller for canceling ICI from a signal received from a channel and outputting a first signal without ICI; and an ISI canceller, comprising: a symbol decoder for decoding a first symbol comprising a set of the first signals to generate a decoded symbol; and a symbol-base feedback filter with a plurality coefficients for transforming the decoded symbol by a Toeplitz Matrix H(m) to cancel ISI from the present decoded symbol, and generating an output signal; wherein the first symbol has (k+1) chips, the Toeplitz Matrix is a (k+1)*(k+1) matrix, m is the symbol time of the first symbol, the chip times of the first symbol are from (n−k) to n, n, k and m are natural numbers and n=(k+1)m; ${H(m)} = \begin{bmatrix} {\left( {\overset{k}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)/\left( {k + 1} \right)} & {\left( {\overset{k - 1}{\sum\limits_{i = 0}}{{E^{*}\left( {n - \left( {i + 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)/k} & \cdots & \cdots & {{E^{*}\left( {n - k} \right)} \cdot {C(n)}} \\ \left( {\overset{k - 1}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {{C\left( {n - \left( {i + 1} \right)} \right)}/k}}} \right. & {\left( {\overset{k}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)/\left( {k + 1} \right)} & \cdots & \cdots & {\left( {\overset{k - {({k - 1})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - \left( {i + k - 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)/2} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ {\left( {\overset{k - {({k - 1})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + k - 1} \right)} \right)}}} \right)/2} & {\left( {\overset{k - {({k - 2})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + k - 2} \right)} \right)}}} \right)/3} & \cdots & \cdots & {\left( {\overset{k - 1}{\sum\limits_{i = 0}}{{E^{*}\left( {n - \left( {i + 1} \right)} \right)} \cdot {C\left( {n - i} \right)}}} \right)/k} \\ {{E^{*}(n)} \cdot {C\left( {n - k} \right)}} & {\left( {\overset{k - {({k - 1})}}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - \left( {i + k - 1} \right)} \right)}}} \right)/2} & \cdots & \cdots & {\left( {\overset{k}{\sum\limits_{i = 0}}{{E^{*}\left( {n - i} \right)} \cdot {C\left( {n - i} \right)}}} \right)/\left( {k + 1} \right)} \end{bmatrix}$ where E(n) is a vector of error values computed as the difference between the chip of the decoded symbol at the chip time n, and the chip input to the symbol decoder at the chip time n, and C(n) is the chip of the decoded symbol at the chip time n.
 8. The decision feedback equalizer as claimed in claim 7, wherein the coefficients are updated according to a least mean square algorithm: H(m+1)=H(m)+μT{conj(E(m))·C(m+1)}; H(m) is coefficients at a symbol time m; H(m+1) is coefficients at a symbol time (m+1);

is a predetermined gain; T{ } is the Toeplitz Matrix; E(m) is the vector of error values; and C(m+1) is the decoded symbol at the symbol time (m+1).
 9. The decision feedback equalizer as claimed in claim 7, wherein the Toeplitz Matrix $\begin{bmatrix} h_{({k + 1})} & h_{({k + 2})} & \cdots & \cdots & h_{({{2k} + 1})} \\ h_{k} & h_{({k + 1})} & \cdots & \cdots & h_{2k} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & h_{({k + 2})} \\ h_{1} & h_{2} & \cdots & \cdots & h_{({k + 1})} \end{bmatrix},$ at the symbol time m is $\begin{bmatrix} {{E^{*}\left( {n - k} \right)} \cdot {C\left( {n - k} \right)}} & {{E^{*}\left( {n - k} \right)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E\left( {n - k} \right)} \cdot {C(n)}} \\ {{E^{*}\left( {n - \left( {k - 1} \right)} \right)} \cdot {C\left( {n - k} \right)}} & {{E^{*}\left( {n - \left( {k - 1} \right)} \right)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E^{*}\left( {n - \left( {k - 1} \right)} \right)} \cdot {C(n)}} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \left. {{E^{*}\left( {n - 1} \right)} \cdot {C\left( {n - k} \right)}} \right) & {{E^{*}\left( {n - 1} \right)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E^{*}\left( {n - 1} \right)} \cdot {C(n)}} \\ {{E^{*}(n)} \cdot {C\left( {n - k} \right)}} & {{E^{*}(n)} \cdot {C\left( {n - \left( {k - 1} \right)} \right)}} & \cdots & \cdots & {{E^{*}(n)} \cdot {C(n)}} \end{bmatrix},$ and when the channel is steady, the values of the elements in the diagonal lines of the Toeplitz Matrix are almost the same, h₁₁=h₂₂= . . . =h_((k+1) (k+1)), h₂₁=h₃₂= . . . =h_((k+1) k), . . . , h_(k1)=h_((k+1)2), h₁₂=h₂₃= . . . =h_(k(k+1)), h₁₃=h₂₄= . . . =h_(kk), . . . , h_(1k)=h_(2(k+1)).
 10. The decision feedback equalizer as claimed in claim 7, wherein, in the Toeplitz Matrix $\begin{bmatrix} h_{({k + 1})} & h_{({k + 2})} & \cdots & \cdots & h_{({{2k} + 1})} \\ h_{k} & h_{({k + 1})} & \cdots & \cdots & h_{2k} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ h_{2} & h_{3} & \cdots & \cdots & h_{({k + 2})} \\ h_{1} & h_{2} & \cdots & \cdots & h_{({k + 1})} \end{bmatrix},$ for any (2k+1)≧i≧(k+1), the h_((i)) . . . h_((2k+1)) are equal to
 0. 